「Release前記得要跑Regression啊」
「新版改動的Regression預計要跑多久?」
「這個case有點急,上線前要請QA team幫忙跑Regression」
我一開始遇到的專有名詞就是Regression這個詞,完全不懂是什麼意思。
以下簡單說明什麼是回歸測試(Regression Test)
回歸測試要測的就是:「確保新功能的加入,不會影響既有的舊功能。」
我們用上一篇的雲端記帳服務做為範例,加入的新功能是比特幣的幣種支援
既有的舊功能像是台幣美金的收支紀錄與資產總覽的儀表版。
回歸測試的範圍就是加入比特幣記帳後,台幣美金的收支與資產總覽的功能正常。
而回歸測試的重點就是要建立團隊成員對產品品質的信心程度
讓大家心裡都有:「嗯,這個東西明天就上Production沒什麼問題。」的底氣
但問題就來了,信心程度非常難用量化表示,要怎麼說服團隊品質是沒問題的?
很直覺來想,就是要在測試計畫裡要清楚說明:
「新功能OK跟舊功能也OK的測試覆蓋率」
但實際上測試計畫細節很多講起來落落長,當你把所有測試內容都講完一遍
一個測試審查會議加上團隊反饋與修改,會議很容易就開到兩小時以上甚至開兩場
要怎麼讓測試計畫簡單易懂,我覺得最好用的招就是設定測試優先度。
測試優先度的概念其實已經包含在測試策略三大原則裡面。
也就是說「測什麼」跟「可以測多久」,可以決定你怎麼設定這次測試的優先度。
而常用的優先度(Priority)分級可以從P1~P3,也有人用到P4、P5。
數字越小代表這個測試項目的優先度越高,所以P1就是最優先,P3就是普通
讓我們再用上面的記帳軟體來做實際的規劃:
新增的幣種支援由於是一個新功能,它的測試優先度就會是P1
而針對這次新增功能所要跑的回歸測試,主要分為兩塊:
第一項,針對原本幣種的收支明細,我會把測試優先度設定為P2
原因是新增的功能是支援新幣種,邏輯上(應該)不會動到原本幣種的記帳功能
而第二項,資產總覽的儀表板,我會把測試優先度設定為P1
原因是儀表板會包含既有幣種加上新幣種的介面顯示,從數字加總到圖表呈現
都有可能因為新加入的邏輯改動而有所影響。
當我們有了一個這樣簡單的規劃,我們就可以在測試計畫審查會議中說:
「P1測試項目排在優先測試的原因是OOO,P2項目的原因是XXX,
這次測試我們會先以P1項目為優先測試,與在時間內跑完P2項目。
如果遇到問題的時候,也可以針對項目優先度請RD去修正後驗證。」
比起沒有做優先度設定的狀況可能變成:
「我這次要測試功能A,然後還有時間就把一些舊的功能順手測一測。
還有一些可能遇到的問題,再花一點時間把case敲一敲。」
兩者的差異性應該能明顯感覺得出來吧?(有誇飾嫌疑XD)
而在回歸測試中,你更需要藉由訂出優先度來切出測試的範圍
因為像上面我舉的例子是個簡化的例子,實際產品都可能複雜很多
回歸測試的範圍根據修改範圍可大可小,透過對產品功能間的關聯性的瞭解程度
才能很好的切出一個可以說服自己跟團隊,且能在期限內執行完成的回歸測試。
篇幅關係,為什麼回歸測試會被稱為保命符,
留待下一篇來聊聊 Bug(程式臭蟲)